home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 92 / DPPCZ0800.7z / DPPCZ0800.ISO / Demos / Star Trek - Armada / armada_demo.exe / data / RTS_CFG.h < prev    next >
C/C++ Source or Header  |  2000-04-01  |  10KB  |  308 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // RTS_CFG.h
  4. //
  5. // Runtime configuration file for real-time topdown strategy elements added
  6. // to the engine.
  7. //
  8. // By the Mad Dr. I.  4/98.
  9. //
  10. ///////////////////////////////////////////////////////////////////////////////
  11.  
  12. //
  13. // Include the ART only parameters
  14. //
  15. #include "ART_CFG.h"
  16.  
  17. ///////////////////////////////////////////////////////////////////////////////
  18. // Interface Settings
  19. ///////////////////////////////////////////////////////////////////////////////
  20.  
  21. // CAMERA CONTROL
  22. float OVERVIEW_MAX_ZOOM = 4.0;
  23. float OVERVIEW_INIT_ZOOM = 1.5;
  24. float OVERVIEW_MIN_ZOOM = 1.0;
  25. float OVERVIEW_PARABOLA_FOCUS = 200.0;
  26. float OVERVIEW_MAX_HEIGHT  = 700.0;
  27. float OVERVIEW_INIT_HEIGHT = 450.0;
  28. float OVERVIEW_MIN_HEIGHT  =  10.0;
  29. float OVERVIEW_INIT_ROTATION = 0.0;
  30. int SCROLL_BORDER_WIDTH = 2;
  31. float SCROLL_COEFFICIENT = 90000.0;
  32. float FASTSCROLL_COEFFICIENT = 0.005;
  33. float ZOOM_SCROLL_COEFFICIENT = 0.1;
  34. float ROTATION_SCROLL_COEFFICIENT = 0.01;
  35. float CINEMATIC_ROTATION_COEFFECIENT = 0.035;
  36. float KEYBOARD_SCROLL_RATE = 6.0;
  37. int SCROLL_ACCELERATION = 2;                // Multiplier for each "step"
  38. int TIME_SCALE = 1;                            // How fast to ramp up over time
  39. float MAX_SCROLL_SPEED = 10.0;                // The max speed we want to scroll
  40. float INITIAL_SCROLL_SPEED = 0.5;            // Initial speed
  41. int FAST_SCROLL_ACCELERATION = 10;
  42. int FAST_TIME_SCALE = 10;
  43. float FAST_MAX_SCROLL_SPEED = 5.0;
  44. float FAST_INITIAL_SCROLL_SPEED = 0.5;
  45.  
  46. // SHIP SELECTION
  47. int USE_LIGHTING_FOR_SELECTION = 0;            // Whether to use lighting or selection box.
  48. int SELECTION_RECTANGLE_COMMIT_AREA = 100;    // Define the area of the rectangle we need to form for the selection
  49.                                             // rectangle to become the current action.
  50.  
  51. float STATION_PLACEMENT_GRID_SIZE = 50.0;    // The size of the grid squares in the placement map.
  52.  
  53. // PANEL PROPERTIES
  54. int RESOURCE_PANEL_PRIORITY = 8;
  55. int CINEMATIC_PANEL_PRIORITY = -2;
  56. int CONTROL_PANEL_PRIORITY = 2;
  57. int CURSOR_SIMULATE_PRIORITY = -10;
  58. int CURSOR_RENDER_PRIORITY = 10;
  59. int RADAR_PANEL_PRIORITY = 4;
  60. int OVERVIEW_PANEL_PRIORITY = -7;
  61. int VIDEO_PANEL_PRIORITY = -3;
  62. int SELECTION_PRIORITY = -5;
  63. int INFO_PANEL_PRIORITY = 0;
  64. int SPEED_PANEL_PRIORITY = 6;
  65. int OBJECTIVES_PANEL_PRIORITY = 7;
  66. int SNAP_TO_DISTANCE = 10;                    // Distance where the panels snap to another panel or the edge.
  67. int UNHIDE_DISTANCE = 15;                    // Distance at which the interface auto-hide pops up.
  68.  
  69. // CHAT
  70. int SCROLL_INTERVAL = 300;                    // Interval for scrolling top line.
  71. int DEFAULT_CHAT_TEXT_HEIGHT = 15;            // How much space between lines?
  72.  
  73. // GRID ACTION FX
  74. float GRID_FX_GROWTH_RATE = 0.83;
  75. float GRID_FX_MAX_SIZE = 50.0;
  76. float GRID_FX_MIN_SIZE = 2.0;
  77. float GRID_FX_GROWTH_INTERVAL = 0.01;        // In seconds. Time to pass between growth.
  78. float GRID_FX_ROTATION_SPEED = 2.0;
  79. int GRID_FX_MIN_SEGMENTS = 8;
  80. int GRID_FX_MAX_SEGMENTS = 36;
  81.  
  82. // DEBUG DISPLAY
  83. int SHOW_QUADTREE = 0;                        // Should we show the quadtree decompsition?
  84. int SHOW_FOOTPRINTS_IN_EDIT_MODE = 0;        // Should we show footprints in edit mode?
  85. int DEBUG_VECTORS_3D = 0;
  86. int DEBUG_SHOW_AI_PATHS = 0;
  87. int DEBUG_SHOW_AI_PATHS_RUNNING = 0;
  88. int DEBUG_SHOW_CURVES = 1;
  89. int DEBUG_SHOW_OBJ_POSTS = 1;
  90. int DEBUG_SHOW_OBJ_POSTS_RUNNING = 0;
  91. int DEBUG_SHOW_LOCAL_BOUNDING_BOX = 0;
  92. int DEBUG_SHOW_OBJECT_BOUNDING_BOX = 0;
  93. int DEBUG_SHOW_LOCAL_BOUNDING_SPHERE = 0;
  94. int DEBUG_SHOW_OBJECT_BOUNDING_SPHERE = 0;
  95. int DEBUG_SHOW_BOUNDING_SQUARE = 0;
  96. int DEBUG_DRAW = 0;
  97.  
  98. // INVALID PARAMETERS
  99. // These are no longer used to my knowledge:
  100. int INTERFACE_DISPLAY = 0;                        // INVALID
  101. float SELECTION_CIRCLE_VERTICAL_OFFSET = -20;    // INVALID: How much above (or below) the ship to draw the selection circle.
  102. float SELECTION_CIRCLE_SIZE_MULTIPLIER = 0.4;    // INVALID: How big a circle to draw.
  103.  
  104. ///////////////////////////////////////////////////////////////////////////////
  105. // Other...
  106. ///////////////////////////////////////////////////////////////////////////////
  107.  
  108. //
  109. // DIFFICULTY SETTINGS
  110. //
  111.  
  112. // AI special weapon fire rate
  113. float EASY_SPECIAL_WEAPON_FIRE_MODIFIER = 2.0;
  114. float DEFAULT_SPECIAL_WEAPON_FIRE_MODIFIER = 1.0;
  115. float HARD_SPECIAL_WEAPON_FIRE_MODIFIER = 0.2;
  116.  
  117. // Damage coefficients for incoming damage for user in single player
  118. float EASY_DAMAGE = 0.5;
  119. float HARD_DAMAGE = 2.0;
  120.  
  121. // ------------------
  122. // Storm3D parameters
  123. // ------------------
  124.  
  125. // Number of Z-sort buckets used by Storm3D renderer
  126. int ST3D_NUM_ZSORT_BUCKETS = 16384;
  127. int ST3D_SHOW_LIGHT_SOURCE_INFO=0;
  128. int ST3D_PRELOAD_TEXTURES = 1;
  129.  
  130. //
  131. // DAMAGE MODEL
  132. //
  133.  
  134. // Are we using the hitpoint system for damage allocation?
  135. int USE_SYSTEM_HITPOINTS = 1;
  136. int SYSTEM_HITPOINTS_BONUS = 0;
  137. float SHIELD_DAMAGE_PROTECTION = 1.0;
  138.  
  139. // The default for pre-loading is off for debug, on for release.
  140. // If you want it different, uncomment these two.
  141.  
  142. // Should we demand load all ODFs?
  143. int DEMAND_LOAD_ODFS = 1;
  144.  
  145. // Should we show the framerate in the upper left corner?
  146. int  FRAMERATE_DISPLAY = 0; 
  147.  
  148.  
  149. //       A    AAAAA
  150. //      A A     A
  151. //     A   A    A
  152. //     AAAAA    A
  153. //     A   A    A
  154. //     A   A  AAAAA
  155.  
  156. // STRATEGIC AI
  157.  
  158. // Show visual representation of goal types for grid cells for this team
  159. // (put -1 for none)
  160. int DEBUG_GOALS_FOR_TEAM = 2;
  161.  
  162. // COMBAT
  163.  
  164. // To determine if we've got enough ships that we're in a damned morass
  165. float MORASS_SIZE = 100.0;
  166. int MORASS_SHIP_LIMIT = 1;
  167. int MORASS_FRIENDS_LIMIT = 1;
  168.  
  169. // Instead of standing perfectly still, should we circle in place near our
  170. // weapon range?
  171. int CIRCLE_IN_PLACE_DURING_COMBAT = 0;
  172. float CIRCLE_RADIUS_DIVISOR = 6.0;
  173.  
  174. // PATHING
  175.  
  176. // Cost of OFF-MAP pathing
  177. int OFF_MAP_PATHING_COST = 90000;
  178.  
  179. // Path Planning
  180. float HIGHEST_QUADTREE_GRID_RESOLUTION = 50.0;
  181.  
  182. // Should we use the full on path planning?
  183. int USE_PATH_PLANNING = 1;
  184.  
  185. // A value for terrain impassability
  186. int IMPASSABLE_TERRAIN = -1;
  187.  
  188. // Default value for terrain cost
  189. int DEFAULT_TERRAIN_VALUE = 100;
  190.  
  191. // What is a value above which we don't let people path into a region
  192. int CANNOT_PATH_INTO_COST = 200;
  193.  
  194. // Do we want the extra special rubber banding effect to make paths nicer?
  195. int PERFORM_RUBBER_BANDING = 1;
  196.  
  197. // Do formation moves relative to chase ship or relative to map position
  198. int FORMATIONS_RELATIVE_TO_SHIP = 0;
  199.  
  200. // In certain combat modes, we go extra slow
  201. float COMBAT_SLOWDOWN = 1.0;
  202.  
  203. // The leader of a formation should slow his ass down
  204. float FORMATION_LEADER_SLOWDOWN = 0.9;
  205.  
  206. // Pathing cost for nebulae
  207. float NEBULAE_PATHING_COST = 198.0;
  208.  
  209. // Extra distance for pathing around nebulae
  210. float NEBULAE_PATHING_SAFETY_COEFFICIENT = 1.8;
  211.  
  212. // Pathing cost for asteroid belts
  213. float ASTEROID_BELT_PATHING_COST = 201.0;
  214.  
  215. // Distance for pathing around asteroid belts
  216. float ASTEROID_BELT_PATHING_DISTANCE = 150.0;
  217.  
  218. // Pathing cost for blackholes
  219. float BLACKHOLE_PATHING_COST = IMPASSABLE_TERRAIN;
  220.  
  221. // Extra distance for pathing around blackholes
  222. float BLACKHOLE_PATHING_SAFETY_COEFFICIENT = 1.5;
  223.  
  224. // Do we default to formation move, or non-formation group move
  225. int DEFAULT_TO_FORMATION_MOVE = 0;
  226.  
  227. // STRATEGIC AI PARAMETERS
  228. float AI_GRID_SIZE = 400.0;
  229. #define EASY_AI "AI_Easy_Script.dsl"
  230. #define MEDIUM_AI "AI_Medium_Script.dsl"
  231. #define HARD_AI "AI_Hard_Script.dsl"
  232.  
  233. // Ship combat configuration
  234. float SHIP_COMBAT_FLOOR = 10.0;
  235. float SHIP_COMBAT_CEILING = 67.0;
  236. float ANCHOR_PURSUIT_POINT_ANGLE = (3.14159/6);
  237. float ANCHOR_RADIUS = 4.0;
  238. float ANCHOR_PURSUIT_FORCE = 1.0;
  239. float CENTER_OF_COMBAT_PERSISTENCE_CUTOFF = 6 * ANCHOR_RADIUS;
  240. float DOGFIGHT_RANGE = 70.0;
  241.  
  242. //
  243. // COLLISION AVOIDANCE & PATH FOLLOWING STUFF
  244. //
  245.  
  246. // How far apart should ships be when moving in formation
  247. float FORMATION_SPACING = 100.0;
  248.  
  249. // How much the last cycle's collision avoidance force should factor into
  250. // this cycle's.  Must be less than 1.0, and should likely not be very close
  251. // to 1.0.
  252. float OLD_AVOIDANCE_FORCE_WEIGHT = 0.7;
  253.  
  254. //Obstacle avoidance is on by default
  255. int OBSTACLE_AVOIDANCE = 1;
  256.  
  257. // How far ahead to project a collision
  258. float COLLISION_LOOK_AHEAD_TIME = 1.4;
  259.  
  260. // How much wider than reality to pretend objects are for collision avoidance
  261. float COLLISION_SAFETY_MARGIN = 1.2;
  262.  
  263. // We're adding a special repulsion on the y-axis for collision avoidance.
  264. float Y_REPULSION = 0.5;
  265.  
  266. // When we're following a scripted 3D path, we know to advance to the next
  267. // point when we're within this radius of the current point
  268. float PATH_POINT_RADIUS = 35.0;
  269. float PATH_POINT_RADIUS_SQUARED = PATH_POINT_RADIUS * PATH_POINT_RADIUS;
  270.  
  271. // In order for scripted maneuvers to look good, we need to speed up the
  272. // maneuvering ship, and slow down the target ship
  273. float SCRIPTED_ATTACK_SPEED_UP = 1.2;
  274. float SCRIPTED_ATTACK_TARGET_SLOW_DOWN = 0.6;
  275.  
  276. // We need an epsilon value for sending units to the right or bottom of the map
  277. // to keep our position strictly LESS than the edge value
  278. float MAP_EDGE_EPSILON = 0.1;
  279.  
  280. // We actually start keeping ships from the edge this many meters out
  281. float MAP_EDGE_BUFFER = 100.0;
  282.  
  283. //
  284. //     GAMEPLAY
  285. //
  286.  
  287. // Transporter parameters.
  288. float TRANSPORTER_RANGE = 500.0;
  289. float TRANSPORTER_DELAY = 1.0;
  290. float TRANSPORTER_ACTION_DELAY = 1.0;
  291. int   TRANSPORTER_MAX = 5;
  292.  
  293. //fraction of the the build time it takes to decommission
  294. float DECONSTRUCT_PERCENT_TIME = 0.3;
  295.  
  296. // Weapon parameters.
  297. float BEAM_MISS_LIFETIME = 0.1;
  298.  
  299. // Use team color for normal weapons?
  300. int NORMAL_WEAPON_TEAM_COLOR = 0;
  301.  
  302. // resource gathering parameters
  303. int cfgMaxDilithium = 999999;
  304. int cfgMaxOfficers = 100;
  305. int cfgMaxCrew = 99999;
  306. int cfgStartingDilithium = 3500;
  307. int cfgStartingCrew = 4000;
  308.